package com.badlogic.androidgames.framework.impl;

import java.io.IOException;

import android.app.Activity;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.media.AudioManager;
import android.media.SoundPool;

import com.androidgame.framwork.Audio;
import com.androidgame.framwork.Music;
import com.androidgame.framwork.Sound;

public class AndroidAudio implements Audio{
	AssetManager assets;
	SoundPool soundPool;
	
	public AndroidAudio(Activity activity)
	{
		activity.setVolumeControlStream(AudioManager.STREAM_MUSIC);
		this.assets = activity.getAssets();
		this.soundPool = new SoundPool(20, AudioManager.STREAM_MUSIC, 0);
	}
	
	@Override
	public Music newMusic(String fileName) {
		// TODO Auto-generated method stub
		try
		{
			AssetFileDescriptor assetDescriptor = assets.openFd(fileName);
			return new AndriodMusic(assetDescriptor);
		}
		catch(IOException e)
		{
			throw new RuntimeException("Couldn't load music '" + fileName + "'");
		}
	}
	@Override
	public Sound newSound(String fileName) {
		// TODO Auto-generated method stub
		try
		{
			AssetFileDescriptor assetDescriptor = assets.openFd(fileName);
			int soundId = soundPool.load(assetDescriptor, 0);
			return new AndriodSound(soundPool, soundId);
		}
		catch(IOException e)
		{
			throw new RuntimeException("Couldn't load sound '" + fileName + "'");
		}
	}

}
